Determining and correcting the source of software errors or performance issues, commonly referred to as debugging, remains a major problem in software development. Several studies have estimated that debugging consumes over fifty percent of software development time and costs. Although software configuration management systems and formalized debugging approaches can assist in debugging efforts, debugging can remain a tedious, time consuming task.
Further, even after release bugs can arise, or performance issues identified. In some cases, a program may function, but it may suffer from performance issues (e.g., unexpectedly or undesirably high execution time, processor use, memory use, network use, or the like). Or, a program may function as desired in some scenarios, but fail to function, or suffer from performance issues, in other scenarios. Detecting and resolving these bugs or performance issues can be time consuming. Accordingly, room for improvement exists.